package com.leetcode.August;

import java.util.HashMap;
import java.util.Map;

/**
 * @Description: 13. 罗马数字转整数
 * @Author: Mr.Fxy
 * @CreateTime: 2024-08-20 21:19
 */
public class LC13罗马数字转整数 {
    public int romanToInt(String s) {
        Map<Character, Integer> romanValues = new HashMap<>();
        romanValues.put('I', 1);
        romanValues.put('V', 5);
        romanValues.put('X', 10);
        romanValues.put('L', 50);
        romanValues.put('C', 100);
        romanValues.put('D', 500);
        romanValues.put('M', 1000);

        int res = 0;
        int prevValue = 0;
        for (int i = s.length()-1; i>=0 ; i--) {
            char c=s.charAt(i);
            int value = romanValues.get(c);
            if (value < prevValue) {
                res -= value;
            } else {
                res += value;
            }
            prevValue = value;
        }
        return res;
    }
}
